﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ADDDF.Infrastructure
{
    /// <summary>
    /// IValueObject is the interface for a value object. A value object contains only readonly
    /// property thus it is immutable, therefore, it must satisfy the access rule below.
    /// 
    /// Access rule: value object is immutable. Its properties gets their values from
    /// the constructor only. Once it is instanciated, the property values should not be 
    /// changed.
    /// 
    /// Equality rule: two value objects are equal if all of their property values are 
    /// equivalent. 
    /// 
    /// Our convention is to use Object.Equals() to test the equivalance of value
    /// objects. When designing a value-object, be sure to override Object.Equals() according
    /// to the equality rule. When overriding Object.Equals(), be sure to also override 
    /// Object.GetHashCode() so they will have consistent behavior. 
    /// </summary>
    public interface IValueObject
    {
    }
}
